package com.platform.qujia.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户优惠券实体类
 */
@Data
public class UserCoupon {

    //用户优惠券属性
    private Integer id;                     //优惠券ID
    private Integer couponId;               //优惠券模板ID；
    private String issueId;                 //领取方式ID
    private String unionId;                 //用户union_id；
    private String couponNo;                //优惠券码
    private String couponIsUsed;            //优惠券是否被使用
    private Date getCouponTime;             //优惠券获取时间
    private String couponIsEffective;       //用户获得的优惠券是否还有效
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date couponEffectiveTime;       //优惠券有效期截止时间
    private Integer stationId;              //油站ID
    private Date verificationTime;          //核销时间
    private String verificationUserPhone;   //核销人手机号

    //SQL 条件判断 额外判断参数
    private Date currentTime;                //当前时间
    private String expireFlag;               //过期标志： 1 代表使用的优惠券已过期查询参数； 0 代表未过期有效的优惠券     //已过期参数
    private String canUse;                   //当前优惠券是否可用
    private String noVerificationVerFlag;    //查询没有异业券的参数标识: 0代表只有加油券 1代表只有异业券


    //优惠券属性
    private BigDecimal couponThresholdAmt;  //优惠券使用门槛金额；
    private String couponRemark;            //优惠券备注
    private String couponName;              //优惠券名称
    private String oilName;                 //油品名称
    private String oilType;                 //1 柴油，2 汽油;
    private BigDecimal couponAmt;           //优惠券优惠金额；
    private String couponType;              //优惠券类型
    private String effectiveTimeType;       //有效时间类型： 1，固定时间；2，领取后x天内有效；
    private Date effectiveTimeStart;        //固定时间-有效开始时间；
    private Date effectiveTimeEnd;          //固定时间-有效结束时间；
    private Integer effectiveDayNum;        //有效天数；
    private Integer couponCumulativeNum;    //已领取的优惠券累计
    private Integer couponUseNum;           //已使用的优惠券累计
    private String openPlatform;            //'发放平台，1.微信 2支付宝'；
    private String grantStatus;             //发放状态：0，未发放；1，已发放；
    private String status;                  //有效状态：0，未生效； 1，生效；2，失效；
    private String createBy;                //创建人；
    private Date createTime;                //创建时间;
    private String updateBy;                //更新人
    private Date updateTime;                //更新时间
    private String delFlag;                 //是否删除优惠劵 1是 0 否
    private String couponDetails;           //优惠内容
    private String verification;            //优惠劵选中的站点
    private String availableControl;        //有效期内可用时间设置0一直可用 1:每周 2 每月 3 指定日期
    private String appointedDays;           //指定日期
    private String cycleDays;               //每周每月的周几和几号

    //优惠活动是否叠加
    private String isCardFlag;              //是否电子卡
    private String isGradeFlag;             //是否等级
    private String isMarketFlag;            //是否叠加营销方案；
    private String isLabelFlag;             //是否叠加标签优惠

    //领取方式属性
    private Integer showId;                     //展示位
    private BigDecimal discountThresholdAmt;    //领取方式门槛金额
    private String issueName;               //领取方式名称

    //油站属性

    private List<CouponVerification> couponVerificationList;        //核销站点

    //计算使用优惠券后返回前端参数
    private CouponReckonAmt couponReckonAmt;

    //核销参数
    private Integer groupId;            //集团ID
    private String mobilePhone;         //核销人员手机号

}
